import com.jfinal.plugin.activerecord.Db;
import io.jpress.core.addon.Addon;
import io.jpress.core.addon.AddonInfo;
import io.jpress.core.addon.AddonUtil;
import io.jpress.core.menu.MenuGroup;
import io.jpress.core.menu.MenuManager;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *网页招聘信息插件
 */
public class AirworthinessAddon implements Addon {

    @Override
    public void onInstall(AddonInfo addonInfo) {
//        try {
//            AddonUtil.execSqlFile(addonInfo, "sql/install.sql");
//
//            Db.execute((Connection conn)->{
//                Statement statement = conn.createStatement();
//                statement.execute(
//                        "CREATE OR REPLACE TRIGGER JPRESS_ADDON_AIRWORTHINESS_CATEGORY_INS_TRG BEFORE INSERT ON JPRESS_ADDON_AIRWORTHINESS FOR EACH ROW WHEN(NEW.ID IS NULL)\n" +
//                                "BEGIN\n" +
//                                "SELECT JPRESS_ADDON_AIRWORTHINESS_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;\n" +
//                                "END;"
//                );
//                return null;
//            });
//
//
//        } catch (SQLException e) {
//            throw new RuntimeException(e);
//        }
    }


    @Override
    public void onUninstall(AddonInfo addonInfo) {
//        try {
//            AddonUtil.execSqlFile(addonInfo, "sql/uninstall.sql");
//        } catch (SQLException e) {
//            throw new RuntimeException(e);
//        }
    }

    @Override
    public void onStart(AddonInfo addonInfo) {

        /**
         *  在 onStart 方法中，我们可以做很多事情，例如：创建后台或用户中心的菜单
         *  此方法是每次项目启动，都会执行。
         *  同时用户也可以在后台触发
         */
        MenuGroup orderMenuGroup = new MenuGroup();
        orderMenuGroup.setId("airworthiness");
        orderMenuGroup.setText("适航指令管理");
        orderMenuGroup.setIcon("<i class=\"fa fa-fw fa-gg-circle\"></i>");
        MenuManager.me().getModuleMenus().add(orderMenuGroup);

    }

    @Override
    public void onStop(AddonInfo addonInfo) {

        /**
         *  和 onStart 对应，在 onStart 所处理的事情，在 onStop 应该释放
         *  同时用户也可以在后台触发
         */
        MenuManager.me().deleteMenuGroup("airworthiness");

    }
}
